I’ve been working with a number of XML documents recently. Basically I’m trying to expose configuration values stored in XML configuration files in an object-oriented structure. I’m using an in-memory XML document and just referencing values as needed from that document. The XML reading does not need to be super-high performance because it does not occur very often, but it got me to thinking… what if it did?
So I ran some performance tests to check the difference between accessing a value from an XML document vs. storing the value in cache and accessing it through a standard get property.
The results (at least on my machine) are as follows:
| 
 Iterations / Millisecond  | 
Performance Difference | |
| XML (attribute value) | 
 8,648  | 
 90% slower  | 
| XML (inner text value) | 
 21,694  | 
 76% slower  | 
| Cached Property | 
 90,140  | 
I knew caching would beat out the other two methods since it’s very fast to access a direct variable, but I was surprised that there was such a difference. I figured there would be a bit of overhead for the inner text property, and a bit more for the attribute lookup, but I was thinking it would be in the range of 10-20% slower. Live and learn. Of course, reading from an in-memory XML document is still pretty dang fast, it’s just that reading from a cached value is faster.
        
Load comments